/*
 * Copyright (c) 2016. reesechou版权所有.243709758@qq.com
 * 无人与我立黄昏 无人问我粥可温
 * 无人与我捻熄灯 无人伴我书半生
 * 无人与我把酒分 无人告我夜已深
 */

package mode.design_mode_12_composite_pattern;

/**
 * ***********************************************************
 *
 * @类名 : controller.design_mode_12_composite_pattern.类名
 * @DESCRIPTION : 这家伙太懒啥都没写
 * @AUTHOR :  一个风情万种的男子
 * @DATE : 2016/4/21
 * ***********************************************************
 */
public class Client {
    public static void main(String[] args) {
        //第一步，建立根节点
        TreeBranch root = new TreeBranch();
        root.doCommonThing();

        //创建树枝
        TreeBranch treeBranch = new TreeBranch();
        root.add(treeBranch);

        //给树枝添加树叶
        treeBranch.add(new Leaf());

        display(root);

    }

    /**
     * 递归遍历树
     * @param root
     */
    private static void display(TreeBranch root) {
        for(Product product : root.getChildren()){
            if(product instanceof Leaf){
                product.doCommonThing();
            }else {
                display((TreeBranch) product);
            }
        }
    }
}
